Java - 자바의 특징 및 특성

April 20, 2020

자바의 개념 및 특징

JAVA는 c++를 모델로 하여 선마이크로 시스템즈에서 개발된 언어로써 객체지향형 언어이며, 인터프리터 언어로써 JVM 위에서 실행되는 언어이다.

자바 프로그램의 종류

  1. J2SE:개인용 컴퓨터용 자바

    Java SE는 데스크탑과 서버에서 자바 애플리케이션을 개발하고 실행할 수 있게 해주며 임베디드 환경과 real-Time environments도 지원한다.

  2. J2ME: 휴대폰 PDA 스마트카드 등의 임베디드 시스템 자바

    Java ME는 핸드폰 프린터, 등 모바일 기기나 임베디드 장치에서 실행되는 애플리케이션을 위한 환경을 제공한다.

  3. J2EE:대규모의 서버용 자바

    Java EE 는 기업용 애플리케이션을 개발하는데 필요한 여러가지 도구민 라이브러리들을 모아놓은 것이다.

자바 프로그램형태의 종류

  1. 자바 애플리케이션: c,c++ 처럼 컴퓨터에서 실행할 수 있는 여러 형태의 응용프로그램을 개발 했을 때의 형태이다.
  2. 자바 애플릿: 서버에서 클라이언트 쪽으로 전송되어 클라이언트에서 실행되며 웹 브라우저에 의해서 실행된다.
  3. 자바 서블릿: 웹서버에서 동작하는 서버 모듈로서 클라이언트의 요구를 받아서 그에 대한 처리를 한 후에 실행 결과를 HTML 문서로 클라이언트 컴퓨터로 전송(server side rendering)

자바의 역사

1991년에 sun 마이크로 시스템 사에서 제임스 고슬링을 비롯한 연구팀에서 가정용 전자체품에 사용할 수 있는 작은 컴퓨터 언어를 설계하였다. 처음에는 c++를 이용해 운영체제를 만들었으나 c++의 복잡도로 인해 실패하였다. 이때 프로젝트를 위해 만든 언어가 Java이다.

자바의 특성

자바의 핵심 문구중 하나는 Write once, Run Everywhere 이다. 이 문구는 자바의 개발 환경에서 바이트코드 기반으로 중간언어로 컴파일을 한 후 실행환경에서 JVM으로 실행을 하기 때문에 JVM이 설치된 환경이라면 어느 곳에서나 동일한 코드로 실행 할 수 있다는 핵심 개념을 표현 한 것이다.

이외의 특성에는 다음과 같은 것들이 있다.

  1. 단순하다.

    c나 c++에서 프로그래머에게 혼란을 줄 수 있는 많은 요소들을 제거하였다. 또한 포인터, 구조체, 전처리 기능등을 삭제 했으며, 메모리를 자동으로 관리해준다.

  2. 객체지향형이다.

    원시 데이터타입을 제외한 대부분의 요소들을 객체로 표현하고 있다. 따라서 소프트웨어의 재사용과 정보의 캡슐화 같은 많은 장점을 제공한다.

  3. 높은 성능을 가진다.

    자바는 컴파일을 한 후에 그 결과인 바이트 코드를 인터프리터가 기계어로 번혁하는 방식으로 구현된다. 따라서 한번 중간언어로 번역된 바이트코드는 실시간으로 인터프리팅을 하는 것보다 나은 성능을 가진다.

  4. 견고하다.

    다양한 환경에서 동일한 결과를 제공하기 위해서 높은 신뢰성을 요구하는데, 이런 특성을 위해 포인터가 없고, 메모리를 자동으로 관리해주며, 객체타입을 코드 작성시점에 검사한다. 또한 실행시점에 에러를 처리해준다.

  5. 안전하다.

    자바는 분산 환경에서 실행될 수 있도록 개발 환경과 실행환경이 분리되어있으며 실행 전과 컴파일 시에 JVM이 무결성 검사를 한다.

  6. 구조중립적이다.

    바이트코드와 JVM을 사용하기 때문에 소스코드를 한번만 작성하고, 기기에 상관 없이 JVM에서 사용할 수 있다.


Written by Juyeong Byeong . github